﻿using System;
using System.Collections.Generic;
using System.Data;
using App_Code.Conexao;
using App_Code.Interface;
using App_Code.Vo;
using FluorineFx;
namespace App_Code.Retaguarda.BD
{
    [RemotingService]
    public class UnidadeSaudeBD: BdAbstrato<UnidadeSaude>
    {
        public UnidadeSaudeBD(ConfiguradorConexao configurador): base(configurador)
        {
        }

        public override void Adicionar(UnidadeSaude unidadeSaude)
        {
            ComandoSql("[dbo].[ins_TBL_Endereco]", CommandType.StoredProcedure);
            MontarParametros(unidadeSaude);
            ExecutarComando();
        }

        public override void Atualizar(UnidadeSaude unidadeSaude)
        {
            ComandoSql("[dbo].[atu_TBL_Endereco]", CommandType.StoredProcedure);
            MontarParametros(unidadeSaude);
            ExecutarComando();
        }

        public override void Excluir(UnidadeSaude unidadeSaude)
        {
            throw new NotImplementedException();
        }

        public override UnidadeSaude Consultar(UnidadeSaude unidadeSaude)
        {
            ComandoSql("[dbo].[cons_TBL_EnderecoPorCodigoUsuario]", CommandType.StoredProcedure);
            AdicionarParametroNulo("@CODIGO_USUARIO", unidadeSaude.Codigo);
            return MontarObjeto();
        }

        //public List<Usuario> Listar(Usuario usuario)
        //{
        //    ComandoSql("[dbo].[cons_TBL_AreaAtuacaoPorModalidade]", CommandType.StoredProcedure);
        //    AdicionarParametro("@codModalidade", );
        //    return MontarListagem();
        //}

        protected override void PreencherObjeto(ref UnidadeSaude unidadeSaude, IDataReader reader)
        {
            #region Endereço Usuário

            if (reader["CODIGO"] != DBNull.Value)
            {
                unidadeSaude.Codigo = (decimal)reader["CODIGO"];

                
            }
            #endregion
        }

        private void MontarParametros(UnidadeSaude unidadeSaude)
        {
            if (unidadeSaude.Codigo > 0)
            {
                AdicionarParametro("@codigo", unidadeSaude.Codigo); 
            }

            //AdicionarParametro("@tipologradouro", endereco.TipoLogradouro);
            //AdicionarParametro("@logradouro", endereco.Logradouro);
            //AdicionarParametro("@numero", endereco.Numero);
            //AdicionarParametro("@complemento", endereco.Complemento);
            //AdicionarParametro("@bairro", endereco.Bairro);
            //AdicionarParametroNulo("@municipio ", endereco.Municipio);
            //AdicionarParametro("@uf", endereco.Uf);
            //AdicionarParametro("@tipoendereco", endereco.TipoEndereco);
            //AdicionarParametro("@celular", endereco.Celular);
            //AdicionarParametro("@telefone", endereco.Telefone);
            //AdicionarParametro("@usuario_codigo", endereco.UsuarioCodigo);

        }
    }
}
